class Point:
    """
    表示一个二维平面上的点。

    Attributes:
        x (float): 点的 x 坐标。
        y (float): 点的 y 坐标。

    Methods:
        __init__(self, x: float, y: float): 初始化一个新的 Point 对象。
        distance_to_origin(self) -> float: 计算点到原点的距离。
        distance_to(self, other: Point) -> float: 计算当前点到另一个点的距离。
    """

    def __init__(self, x: float, y: float):
        """
        初始化一个新的 Point 对象。

        Args:
            x (float): 点的 x 坐标。
            y (float): 点的 y 坐标。
        """
        self.x = x
        self.y = y

    def distance_to_origin(self) -> float:
        """
        计算点到原点的距离。

        Returns:
            float: 点到原点的距离。
        """
        return (self.x ** 2 + self.y ** 2) ** 0.5

    def distance_to(self, other: 'Point') -> float:
        """
        计算当前点到另一个点的距离。

        Args:
            other (Point): 另一个点。

        Returns:
            float: 当前点到另一个点的距离。
        """
        return ((self.x - other.x) ** 2 + (self.y - other.y) ** 2) ** 0.5

# 示例用法
if __name__ == "__main__":
    point1 = Point(3, 4)
    point2 = Point(6, 8)
    print(f"The distance of point1 ({point1.x}, {point1.y}) to the origin is {point1.distance_to_origin()}")
    print(f"The distance between point1 ({point1.x}, {point1.y}) and point2 ({point2.x}, {point2.y}) is {point1.distance_to(point2)}")


